import requests
import json

def search_web(query="成都青羊区今日天气？", count=3, page=1):
    """
    网络搜索接口函数
    
    参数:
        query: 搜索关键词
        count: 返回结果数量
        page: 页码
        
    返回:
        包含搜索结果的字典列表，每个字典包含name、url和snippet
    """
    # 填写你的API Key
    API_KEY = "sk-6372bd0f07d54f57a22381fd3241a60b"
    
    # 请求配置
    url = "https://api.bochaai.com/v1/web-search"
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    payload = {
        "query": query,
        "summary": True,
        "count": count,
        "page": page,
        "freshness": "noLimit", #支持 noLimit、oneDay、oneWeek、oneMonth、oneYear
        "answer": False #使用AI回答
    }
    
    # 发送请求
    response = requests.post(url, headers=headers, data=json.dumps(payload))
    
    # 解析结果
    if response.status_code == 200:
        results = response.json()
        result_list = []
        for item in results["data"]["webPages"]["value"]:
            result_dict = {
                "name": item['name'],
                "url": item['url'],
                "snippet": item['snippet']
            }
            result_list.append(result_dict)
        return result_list
    else:
        return {"error": f"请求失败！错误码：{response.status_code}", "details": response.text}

# 使用示例
if __name__ == "__main__":
    results = search_web("成都青羊区今日天气？")
    print(results)



# 返回结果示例
"""
成功返回示例
[
    {
        "name": "为什么天空是蓝色的？ - 知乎",
        "url": "https://www.zhihu.com/question/19581216",
        "snippet": "天空呈现蓝色是因为大气分子对阳光中不同波长的光散射能力不同。蓝光波长较短（约400-500纳米），散射效果更强，从各个方向被散射到我们眼睛里，使天空呈现蓝色。这种现象被称为瑞利散射。"
    },
    {
        "name": "天空为什么是蓝色的？ - 百度知道",
        "url": "https://zhidao.baidu.com/question/121048157.html",
        "snippet": "天空是蓝色的原因是阳光中各种颜色的光在大气中经过散射后，蓝光的散射效果最强。阳光是由各种颜色的光组成的，当阳光通过大气层时，不同波长的光被散射的程度不同。短波长的蓝紫光散射更强烈，这使得观察者从各个方向都能看到蓝色光。"
    },
    {
        "name": "天空为什么是蓝色的？ - 中国科学院",
        "url": "https://www.cas.cn/kx/kpwz/201707/t20170720_4609344.shtml",
        "snippet": "天空呈蓝色是由于阳光中的短波长蓝光在大气分子中发生瑞利散射。当太阳光穿过地球大气层时，大气分子更多地散射了波长较短的蓝光，使得我们从四面八方看到的天空都呈现出蓝色。而日出日落时天空发红是因为阳光需要穿过更长的大气路径，导致蓝光大部分被散射掉，只剩下红光到达观察者。"
    }
]

# 失败返回示例
{
    "error": "请求失败！错误码：401", 
    "details": "{\"message\":\"Invalid API key\",\"code\":\"invalid_api_key\"}"
}